/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.entidade.selo;

import br.com.deployment.entidade.empresa.Cartorio;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

/**
 *
 * @author elyjr
 */
@Entity
public class Selo implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @SequenceGenerator(name = "seq_selo", sequenceName = "seq_selo",allocationSize = 1)
    @GeneratedValue(generator = "seq_selo", strategy = GenerationType.SEQUENCE)
    private int id;
    
    @Column
    private String serie;

    @OneToOne
    private TipoSelo tipoSelo;
    
    @Column
    private int numero;
    
    @Column
    private Boolean protocolado;
    
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataProtocolado;
    
    @Column
    private Boolean distribuido;
    
    @Column
    private Boolean ativo;
    
    @ManyToOne
    private DetalheEntradaSelo detalheEntradaSelo;

    @ManyToOne
    @JoinColumn(name="id_distribuicao")
    private Distribuicao distribuicao;
    
    @OneToOne
    private Cartorio cartorio;
    
    
    public Cartorio getCartorio() {
        return cartorio;
    }

    public void setCartorio(Cartorio cartorio) {
        this.cartorio = cartorio;
    }
    
    public Boolean getAtivo() {
        return ativo;
    }

    public Date getDataProtocolado() {
        return dataProtocolado;
    }

    public void setDataProtocolado(Date dataProtocolado) {
        this.dataProtocolado = dataProtocolado;
    }

    public void setAtivo(Boolean ativo) {
        this.ativo = ativo;
    }
    
    

    public Boolean getDistribuido() {
        return distribuido;
    }

    public void setDistribuido(Boolean distribuido) {
        this.distribuido = distribuido;
    }

    
    public DetalheEntradaSelo getDetalheEntradaSelo() {
        return detalheEntradaSelo;
    }

    public void setDetalheEntradaSelo(DetalheEntradaSelo detalheEntradaSelo) {
        this.detalheEntradaSelo = detalheEntradaSelo;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }
    
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public TipoSelo getTipoSelo() {
        return tipoSelo;
    }

    public void setTipoSelo(TipoSelo tipoSelo) {
        this.tipoSelo = tipoSelo;
    }

    public String getSerie() {
        return serie;
    }

    public void setSerie(String serie) {
        this.serie = serie;
    }

    public Boolean getProtocolado() {
        return protocolado;
    }

    public void setProtocolado(Boolean protocolado) {
        this.protocolado = protocolado;
    }

    public Distribuicao getDistribuicao() {
        return distribuicao;
    }

    public void setDistribuicao(Distribuicao distribuicao) {
        this.distribuicao = distribuicao;
    }
    
  
    
    
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Selo other = (Selo) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        return hash;
    }

    @Override
    public String toString() {
        return "Selo{" + "id=" + id + ", serie=" + serie + ", tipoSelo=" + tipoSelo + ", numero=" + numero + ", status=" + protocolado + ", distribuido=" + distribuido + ", detalheEntradaSelo=" + detalheEntradaSelo + '}';
    }
        
}
